package com.jichaoyun.service;

import com.jichaoyun.common.model.PagedResult;
import com.jichaoyun.model.entity.FlowHour;
import com.baomidou.mybatisplus.extension.service.IService;

import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;

/**
* @author zhen
* @description 针对表【flow_hour】的数据库操作Service
* @createDate 2023-11-23 20:22:53
*/
public interface IFlowHourService extends IService<FlowHour> {

    /**
     * 导出用户日报表
     * @param response
     * @throws IOException
     */
    void getUserDayDataExcel(Integer station_no, String date,HttpServletResponse response) throws IOException;

    /**
     * 生成用户日报表
     * @param stationNo,date
     * @throws IOException
     */
    File generateDailyExcelFile(Integer stationNo, String date) throws IOException;


    /**
     * 获取某日用户日报信息
     * @param station_no
     * @param date
     * @return
     */
    Map<String,Object> getStationDayForm(Integer station_no, LocalDate date);

    /**
     * 根据传入的时间和日期查找小时数居
     * @param stationName
     * @param localDateTime
     * @return
     */
    Map<String,Object> getDataByTime(String stationName,LocalDateTime localDateTime);

    /**
     * 根据日期和站点名返回流速分析数据
     * @param stationName
     * @param localDate
     * @return
     */
    Map<String,Object> getFlowByDateTime(String stationName,LocalDate localDate);

    /**
     * 根据日期和站点名返回温度分析数据
     * @param stationName
     * @param localDate
     * @return
     */
    Map<String,Object> getTempByDateTime(String stationName,LocalDate localDate);

    /**
     * 根据日期和站点名返回压力分析数据
     * @param stationName
     * @param localDate
     * @return
     */
    Map<String,Object> getPresByDateTime(String stationName,LocalDate localDate);

    /**
     * 根据日期分页获取当日所有流速分析
     * @param localDate
     * @param pageNo
     * @param pageSize
     * @return
     */
    PagedResult getAllFlowByDate(LocalDate localDate, Integer pageNo, Integer pageSize);


    /**
     * 根据日期分页获取当日所有温度分析
     * @param localDate
     * @param pageNo
     * @param pageSize
     * @return
     */
    PagedResult getAllTempByDate(LocalDate localDate, Integer pageNo, Integer pageSize);

    /**
     * 根据日期分页获取当日所有压力分析
     * @param localDate
     * @param pageNo
     * @param pageSize
     * @return
     */
    PagedResult getAllPresByDate(LocalDate localDate, Integer pageNo, Integer pageSize);

    List<Map<String,Object>> getAllFlowByDate(LocalDate localDate);

    /**
     * 导出流量分析excel表
     * @param localDate
     * @param response
     * @throws IOException
     */
    void getAllFlowAnalyzeExcel(LocalDate localDate,HttpServletResponse response) throws IOException;

    List<Map<String,Object>> getAllTempByDate(LocalDate localDate);

    /**
     * 导出温度分析表excel
     * @param localDate
     * @param response
     * @throws IOException
     */
    void getAllTempAnalyzeExcel(LocalDate localDate,HttpServletResponse response) throws IOException;

    List<Map<String,Object>> getAllPresByDate(LocalDate localDate);

    /**
     * 导出压力分析excel表
     * @param localDate
     * @param response
     * @throws IOException
     */
    void getAllPresAnalyzeExcel(LocalDate localDate,HttpServletResponse response) throws IOException;



}
